package com.cn.wanxi.servlet.manage.company;

import com.cn.wanxi.model.CompanyModel;
import com.cn.wanxi.service.ICompanyService;
import com.cn.wanxi.service.impl.CompanyServiceImpl;
import net.sf.json.JSONArray;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * servlet  主要和页面相关，里面的model应该是dto
 * service  服务逻辑层，主要是将页面的modelDto转换成后台数据库的model
 *  HomeModelDto 安装理论上来说  应该包含四个mdoel
 *    因为我们公司信息和导航信息在一起公用的。
 *    所以我们将HomeModelDto分解成 CommonModelDto，和NewsModel和ProductModel
 *    CommonModelDto为公用的，里面包含公司信息和导航信息，CompanyModel，List<NavModel>
 *    这里我们将公用的踢出去，然后在HomeModelDto里面就包含两个类。分别是新闻和产品，
 *    因为查询出来是数据集合  所以，这里分别为List<NewsModel>和List<ProduceModel>
 *     公司信息，导航信息， 公共的类  CommonModelDto对应页面model  分成两个对应数据库的model CompanyModel navModel
 *     新闻信息 NewsModel
 *     产品信息 ProductModel
 */
@WebServlet("/companySelect")
public class CompanySelectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");//请求--页面发送给后台时，请求编码格式为utf-8，utf-8是中文格式，gbk也是中文
        resp.setCharacterEncoding("utf-8");//响应--后台发送数据到前台时，编码格式为utf-8
//        1.拿到页面数据

//        2.封装页面数据到model

//        3.调用service服务逻辑层
        ICompanyService iCompanyService = new CompanyServiceImpl();
        List<CompanyModel> list = iCompanyService.findAll();
//        4.返回页面伙食返回json数据
        JSONArray jsonArray = JSONArray.fromObject(list);
        resp.getWriter().println(jsonArray);//不会刷新页面
//        req.setAttribute("list",list);
//        req.getRequestDispatcher("/back/companySelect.jsp").forward(req, resp);//会刷新页面
    }
}
